﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Media;
using System.Windows.Media.Imaging;

namespace iNet.Media.Video
{
	/// <summary>
	/// 影片媒體介面。
	/// </summary>
	public interface IVideo : IPlayableMedia
	{
		/// <summary>
		/// 取得或設定左右喇叭的音量平衡，預設值為 0。
		/// </summary>
		double Balance { get; set; }
		/// <summary>
		/// 取得影片中是否包含音訊。
		/// </summary>
		bool HasAudio { get; }
		/// <summary>
		/// 取得影片中是否包含視訊。
		/// </summary>
		bool HasVideo { get; }
		/// <summary>
		/// 取得或設定是否為靜音模式。
		/// </summary>
		bool IsMuted { get; set; }
		/// <summary>
		/// 取得原始音訊格式。
		/// </summary>
		IMediaFormat RawAudioFormat { get; }
		/// <summary>
		/// 取得原始影音容器格式。
		/// </summary>
		IMediaFormat RawContainerFormat { get; }
		/// <summary>
		/// 取得原始視訊格式。
		/// </summary>
		IMediaFormat RawVideoFormat { get; }
		/// <summary>
		/// 取得或設定視訊輸出的視窗識別碼 (Window Handle)。
		/// </summary>
		IntPtr VideoOutputWindowHandle { get; set; }
		/// <summary>
		/// 取得視訊的像素高度。
		/// </summary>
		int VideoPixelHeight { get; }
		/// <summary>
		/// 取得視訊的像素寬度。
		/// </summary>
		int VideoPixelWidth { get; }
		/// <summary>
		/// 取得或設定音量大小，範圍為 0 ~ 1，預設值為 0.5。
		/// </summary>
		double Volume { get; set; }
	}
}
